#include<bits/stdc++.h>
#define sd(n) scanf("%d",&n) 
#define sld(n) scanf("%lld",&n)
#define pd(n) printf("%d", (n))
#define pld(n) printf("%lld", n)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define fi first
#define se second
const int N = 2e5;
#define INF 0x7fffffff
typedef long long int ll;
using namespace std;
//----------------------------------------------------------------------------//

void solve()
{
	int n;
	string s;
	sd(n);
	cin >> s;

	// int cnt[2][2];
	// cnt[0][0] = 0; cnt[0][1] = 0;
	// cnt[1][0] = 1; cnt[1][0] = 0;

	// for (auto& k : s)
	// {
	// 	if (k == '1')
	// 		cnt[1][0]++;
	// 	else
	// 		cnt[0][0]++;
	// }

	// // bool flag=false;
	// // if(!cnt[1][0]&1) flag=true;

	// int sum = cnt[1][0];
	// for (auto& k : s)
	// {
	// 	if (k == '0')
	// 		cout << '+';
	// 	if (k == '1')
	// 	{
	// 		// if(flag==true)
	// 		// {
	// 		// 	if(cnt[1][0]>sum/2) cout<<'-';
	// 		// 	else cout<<'+';
	// 		// 	cnt[1][0]--;	
	// 		// }

	// 		if (cnt[1][0] > sum / 2) cout << '-';
	// 		else cout << '+';
	// 		cnt[1][0]--;

	// 	}
	// }
	// puts("");
	int sum;
	if(s[0]=='1') sum=1;
	else sum=0; 
	for(int i=1;i<n;i++)
	{
		if(s[i]=='1'&&sum==1)
		{
			sum--;
			cout<<'-';
			continue;
		}
		if(s[i]=='1'&&sum==0)
		{
			sum++;
			cout<<'+';
			continue;
		}
		if(s[i]=='0')
		{
			cout<<'+';
			continue;
		}
	}
	puts("");

}

int main()
{
	int T;
	sd(T);
	while (T--)
	{
		solve();
	}
	return 0;
}